#include <bits/stdc++.h>
#define int long long 
using namespace std;

const int maxn = 1e6 + 10;
int n;
string s, t;
int nex[2*maxn];
int cnt[2*maxn];
int solve(string s, string t){
	nex[0]=nex[1]=0;
	// 把两个字符串拼接起来, 但是为了防止匹配时两个字符串相连, 中间使用一个两个字符串都没有的字符插进去
	s=" "+s+"#"+t; 
	// 求出这个 长字符串的 nex
	int pos1=n+2;
	int pos2 = 2*n+1;
	for (int i=2, j=0;i<=pos2;i++) { // 这里面只要求出后面拼接上去的那一部分即可
		while(j&&s[i]!=s[j+1]){
			j=nex[j];
		}
		if (s[i]==s[j+1]) {
			j++;
		}
		nex[i]=j;
	}
	// 求出了 cnt 数组, 但是由于较长的字符串匹配成功时, 会忽略了较短字符串的匹配
	// 比如 aaa 与 aaaaa
	// 得到的 cnt 为 {1, 1, 1}
	// 但是 其实 cnt 应该为 {5, 4, 3}
	// 因为长的前缀匹配, 那么这个前缀的所有子前缀都是匹配的
	// 我们应该把这一部分也加上去, 怎么加上去呢
	// 通过 nex 数组
	// [1~j] 匹配了, 那么这个 模式串的 [1~nex[j]] 肯定也是匹配的
	for (int i=pos1;i<=pos2;i++) {
		cnt[nex[i]]++;
	}
	for (int i=n;i>=1;i--) {
		cnt[nex[i]]+=cnt[i]; // 长度包含短的
	}
	int ans=0; 
	for (int i=1;i<=n;i++) {
		ans+=cnt[i];
	}
	return ans;
}

signed main(){
	ios::sync_with_stdio(0), cin.tie(0), cout.tie(0);
	cin>>n;
	cin>>s;
	cin>>t;
	int ans1=solve(s, t);
	memset(nex, 0, sizeof(nex));
	memset(cnt, 0, sizeof(cnt));
	int ans2=solve(t, s);
//	cout << ans1<<' '<<ans2<<'\n';
	if (ans1>ans2) {
		cout << "Xiaoyu"<<'\n';
	} else if (ans1==ans2) {
		cout <<"Draw"<<'\n';
	} else {
		cout <<"Xiaoqiu"<<'\n';
	}
	return 0;
}
